gail: Fix menu emission hooks
authorBenjamin Otte <otte@redhat.com>
Sat, 2 Oct 2010 01:34:42 +0000 (03:34 +0200)
committerBenjamin Otte <otte@redhat.com>
Sat, 2 Oct 2010 01:34:42 +0000 (03:34 +0200)
Ref the GtkmenuItem class, so we can add emission hooks. And actually
add the emission hooks again that were removed in
7c140feb6b18c6e158b83356370a85864758c4f9.

modules/other/gail/gail.c

index d53fd56d9855def67af790e0f6d68d7e7433b3cf..07a619d2ce28e9fb3931067b85e0e5136219cc1e 100644 (file)
@@ -697,6 +697,7 @@ gail_focus_tracker_init (void)
        * We cannot be sure that the classes exist so we make sure that they do.
        */
       g_type_class_ref (GTK_TYPE_WIDGET);
+      g_type_class_ref (GTK_TYPE_MENU_ITEM);
       g_type_class_ref (GTK_TYPE_MENU_SHELL);
       g_type_class_ref (GTK_TYPE_NOTEBOOK);
 
@@ -707,6 +708,22 @@ gail_focus_tracker_init (void)
       g_signal_add_emission_hook (
              g_signal_lookup ("event-after", GTK_TYPE_WIDGET), 0,
              gail_focus_watcher, NULL, (GDestroyNotify) NULL);
+      /*
+       * A "select" signal is emitted when arrow key is used to
+       * move to a list item in the popup window of a GtkCombo or
+       * a menu item in a menu.
+       */
+      g_signal_add_emission_hook (
+             g_signal_lookup ("select", GTK_TYPE_MENU_ITEM), 0,
+             gail_select_watcher, NULL, (GDestroyNotify) NULL);
+
+      /*
+       * A "deselect" signal is emitted when arrow key is used to
+       * move from a menu item in a menu to the parent menu.
+       */
+      g_signal_add_emission_hook (
+             g_signal_lookup ("deselect", GTK_TYPE_MENU_ITEM), 0,
+             gail_deselect_watcher, NULL, (GDestroyNotify) NULL);
 
       /*
        * We listen for deactivate signals on menushells to determine